package com.mes.dao.jy;

import java.util.List;

import com.mes.entity.cb.Materiel;
import com.mes.entity.hy.Product;
import com.mes.entity.jy.Queryjy;
import com.mes.entity.jy.Tempma;
import com.mes.entity.jy.Tempproduct;
import com.mes.entity.jy.Wlfc;
import com.mes.entity.lz.BOM;
import com.mes.entity.tdd.Rejects;

/**
 * @ClassName: TempproductMapper 
 * @Description:产品线边库库存
 * @Author jy
 * @Date 2018年3月15日 下午3:11:48 
 * @version 1.0
 */
public interface TempproductMapper {

	/**
	 * 查询产品线边库
	 * @param queryjy 条件查询实体
	 * @return 产品线边库库存实体
	 */
	public List<Tempproduct> selectTempProduct(Queryjy queryjy);

	/**
	 * 查询所有产品
	 * @return 产品实体集合
	 */
	public List<Product> selectAllProduct();

	/**
	 * 查询所有的线边产品库库存
	 * @return 线边产品库库存集合
	 */
	public List<Tempproduct> selectallTempProduct();

	/**
	 * 根据产品编号查询对应物料列表
	 * @param pnum 产品编号
	 * @return 物料实体集合
	 */
	public List<Materiel> selectBomByPnum(String pnum);

	/**
	 * 线边产品库库存根据产品id分组
	 * @param queryjy 条件查询实体
	 * @return 统计总数
	 */
	public int counTempProduct(Queryjy queryjy);

	/**
	 * 统计产品入库数量（根据产品id和时间等条件）
	 * @param queryjy
	 * @return
	 */
	public int countpRnumer(Queryjy queryjy);

	/**
	 * 统计产品出库数量（根据产品id和时间等条件）
	 * @param queryjy 条件查询实体
	 * @return 统计结果
	 */
	public int countpCnumer(Queryjy queryjy);

	/**
	 * 添加物料反冲记录
	 * @param wlfc1 物料反冲实体
	 * @return 影响行数
	 */
	public int createWlfc(Wlfc wlfc1);

	/**
	 * 统计物料反冲总记录
	 * @param queryjy 条件查询实体
	 * @return 统计结果
	 */
	public int countWlfc(Queryjy queryjy);

	/**
	 * 查询物料反冲列表
	 * @param queryjy 条件查询实体
	 * @return 物料反冲实体集合
	 */
	public List<Wlfc> selectWlfcList(Queryjy queryjy);

	/**
	 * 根据产品编号查询产品信息
	 * @param pnum 产品编号
	 * @return 产品实体
	 */
	public Product selectProductByPnum(String pnum);

	/**
	 * 修改反冲状态
	 * @param code 条码
	 */
	public void editRemark7(String code);

	/**
	 * 根据物料型号查询物料信息
	 * @param type 物料型号
	 * @return 物料实体
	 */
	public Materiel selectMaByType(String type);

	/**
	 * 查询生产完成待入库的产品
	 * @return 产品集合
	 */
	public List<Product> selectAllProduct2();

	/**
	 * 带条件的分页查询不良品库
	 * @param queryjy 条件查询实体
	 * @return 不良品实体集合
	 */
	public List<Rejects> selectRejectsPagine(Queryjy queryjy);

	/**
	 * 带条件的统计不良品库
	 * @param queryjy 条件查询实体
	 * @return 统计结果
	 */
	public int countReject(Queryjy queryjy);

	/**
	 * 根据物料型号查询  线边库物料批号和条码
	 * @param type 物料型号
	 * @return 查询结果
	 */
	public List<Tempma> selectTempMaByType(String type);

	/**
	 * 不良品入库
	 * @param rejects2 不良品库实体
	 * @return 返回影响行数
	 */
	public int insertRejects(Rejects rejects2);

	/**
	 * 查询此条码是否已入库
	 * @param code 条码
	 * @return 统计结果
	 */
	public int countCode(String code);

	/**
	 * 统计不良品库是否有该条码
	 * @param code 条码
	 * @return统计结果
	 */
	public int countNoGoodCode(String code);

	/**
	 * 根据条码查询很多
	 * @param code
	 * @return
	 */
	public Tempproduct selectManyByCode(String code);

	/**
	 * 根据条码查询物料的数量
	 * @param code
	 * @return
	 */
	public Integer selectMaStokNumBycode(String code);

	/**
	 * 根据物料id和领料单id修改领料单中物料的应领料数量
	 * @param bom
	 */
	public Integer updateNumByOrderAndMid(BOM bom);
}